<?php 

include_once './function.php';


/**
 * 获取API数据
 */
class APITool
{

    /**
     * 获取快递信息
     */
    static public function getCourier($nu)
    {
        $list = static::getCourierType($nu);

        $data = static::getOneCourier($list, $nu);
		
        $text = '';
        foreach ($data as $value) {
            $text .= static::formatCourier($value);
            $text .= "\n------------\n";
        }
        return $text;
    }

    
    /**
     * 获取单号
     */
    static public function getCourierType($nu)
    {
        // 获取订单本身信息 POST
        $url = 'http://www.kuaidi100.com/autonumber/autoComNum';
        $list = post($url, 'text='.$nu)['auto'];  // 可能有多个信息

        return $list;
    }
    
    
    /**
     * 获取某一个快递信息
     */
    static public function getOneCourier($list, $nu)
    {
        // 获取具体物流信息 GET
        $data = [];
        $url = 'http://www.kuaidi100.com/query';
        foreach ($list as $info) {
            $para = 'type='.$info['comCode'].'&postid='.$nu.'&id='
                    .$info['id'].'&valicode='.'&temp='.microtime(true);
            $data[] = post($url, $para, false);
        }
        return $data;
    }

    
    /**
     * 格式化快递信息
     */
    static public function formatCourier($data)
    {
        if (empty($data)) {
            return '没有信息';
        }

        switch ($data['status']) {
            case '200':{
                $msg  = '快递:'.$data['com']."\n";
                $msg .= '时间:'.$data['updatetime']."\n";
                foreach ($data['data'] as $value) {
                   $msg .= '时刻:'.$value['ftime'].' '.$value['context']."\n";
                }
            }
                break;
            case '201':{
                $msg  = '信息:'.$data['message']."\n";
            }
                break;
            
            default:
                $msg = '信息:未知错误';
                break;
        }
        return $msg;
    }
}